package com.study.model.mdao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.alibaba.fastjson.JSONObject;
import com.study.model.pojo.Dept;
@Mapper
public interface DeptMAO {
	/**
	 * 查询所有部门
	 * @return
	 */
	List<JSONObject> selectDeptAll();
	
	List<Dept> selectDeptAllse();
	
	
	/**
	 * 查询所有用户部门信息
	 * @return
	 */
	List<JSONObject> selectDeptUserAll();
	
	/**
	 * 根据部门名称查询部门角色
	 * @param depname
	 * @return
	 */
	public List<JSONObject> selectDeptRole(@Param("depname")String depname);
	
	/**
	 * 根据部门名称查询部门
	 * @param depName
	 * @return
	 */
	public List<JSONObject> selectDeptName(@Param("depName")String depName);
	
	/**
	 * 根据部门id查询部门下所有的员工信息
	 * @param depid
	 * @return
	 */
	public List<JSONObject> selectUserDeptid(@Param("depid")int depid);
	/**
	 * 修改部门
	 * @param dept
	 * @return
	 */
	public int updateDept(@Param("depName")String depName,@Param("depId")int depId);
	
	/**
	 * 删除部门
	 * @param depid
	 * @return
	 */
	public int deleteDept(@Param("depId")int depId);
	
	/**
	 * 新增部门
	 * @param dept
	 * @return
	 */
	public int insertDept(Dept dept);
	
	/**
	 * 查询部门总数
	 * @return
	 */
	public int seleDeptCount();
	
	/**
	 * 根据部门父id查询上级部门
	 * 二级标签
	 * @param superid
	 * @return
	 */
	public List<JSONObject> seleDeptSuperId(@Param("superid") int superid);

	/**
	 * 根据父id查询部门
	 * @param i
	 * @return
	 */
	List<JSONObject> selectByPar(int i);

	/**
	 * 根据部门id查询员工
	 * @param depid
	 * @return
	 */
	List<JSONObject> selectByDepid(String depid);
	
	/**
	 * 实现部门和角色绑定
	 * @param deptid
	 * @param roleid
	 */
	public void setRoleDept(@Param("deptid")String deptid,@Param("roleid")String roleid); 
	
	/**
	 * 解除部门和角色的绑定
	 * @param perid
	 */
	public void delectroleperst(@Param("perid")int perid);
	 
	/**
	 * 根据部门id获取部门对应的角色
	 * @param deptid
	 */
	public List<JSONObject> getfindDeptrole(@Param("depid")String depid);
	
	/**
	 * 获取最后一条部门id
	 */
	public JSONObject getFindDeptse();
	/**
	 * 通过部门名称查询用户
	 * @param depname
	 */
	public List<JSONObject> getfindDeptName(@Param("depname")String depname);
	/**
	 * 查询该部门是否有父级
	 * @param depsuperid
	 */
	public List<JSONObject> findsupperdept(@Param("depsuperid")String depsuperid);
	
	/**
	 * 根据部门名称查询部门
	 * @param depname
	 */
	public JSONObject selectdeptname(@Param("depname")String depname);
	
	public void getfinddeptSupperid(@Param("depname")String depname);
}
